Apache Derby একটি এমবেডেবল ডেটাবেস সিস্টেম হলেও, এটি একটি নেটওয়ার্ক সার্ভার মডেলও সমর্থন করে, যার মাধ্যমে আপনি একটি দূরবর্তী সার্ভার থেকে ডেটাবেস অ্যাক্সেস করতে পারেন। এর মাধ্যমে আপনি অনেক ক্লায়েন্ট অ্যাপ্লিকেশন একযোগে ডেটাবেসে সংযোগ করতে পারেন। এই সার্ভার ব্যবস্থাপনা এবং নিরাপত্তা বিষয়টি খুবই গুরুত্বপূর্ণ। নিচে Apache Derby নেটওয়ার্ক সার্ভার ব্যবস্থাপনা এবং নিরাপত্তা সম্পর্কিত কিছু গুরুত্বপূর্ণ বিষয় আলোচনা করা হলো।
Apache Derby-এ নেটওয়ার্ক সার্ভার চালু করার জন্য আপনাকে startNetworkServer স্ক্রিপ্টটি চালাতে হবে। এটি সার্ভারটি শুরু করবে এবং আপনি ডেটাবেসে সংযোগ স্থাপন করতে পারবেন।
startNetworkServer.bat (Windows) বা startNetworkServer.sh (Linux/Mac) ফাইলটি চালান:
Windows:
C:\derby\bin\startNetworkServer.bat
Linux/Mac:
$DERBY_HOME/bin/startNetworkServer.sh
সার্ভার চালু হওয়ার পরে, এটি 1527 পোর্টে ডেটাবেস সার্ভিস চালু করবে (যেটি ডিফল্ট পোর্ট)।
সার্ভারটি বন্ধ করতে stopNetworkServer স্ক্রিপ্ট ব্যবহার করুন:
Windows:
C:\derby\bin\stopNetworkServer.bat
Linux/Mac:
$DERBY_HOME/bin/stopNetworkServer.sh
একবার সার্ভার চালু হলে, আপনি JDBC (Java Database Connectivity) ব্যবহার করে দূরবর্তী ক্লায়েন্ট অ্যাপ্লিকেশন থেকে সার্ভারের সঙ্গে সংযোগ স্থাপন করতে পারবেন। উদাহরণস্বরূপ:
Connection conn = DriverManager.getConnection("jdbc:derby://localhost:1527/myDB;user=myUser;password=myPass");
এখানে:
localhost
: সার্ভারের হোস্টনেম বা আইপি অ্যাড্রেস1527
: ডিফল্ট পোর্ট নম্বরmyDB
: ডেটাবেসের নামmyUser
এবং myPass
: ডেটাবেসের ইউজারনেম এবং পাসওয়ার্ডApache Derby-এ নিরাপত্তা ব্যবস্থাপনা কিছুটা সীমিত হলেও, এটি মৌলিক নিরাপত্তা ব্যবস্থা যেমন ইউজার অথেনটিকেশন, পাসওয়ার্ড সুরক্ষা এবং ডেটাবেস অ্যাক্সেস কন্ট্রোল সাপোর্ট করে।
আপনি Apache Derby-এ ইউজার অথেনটিকেশন কনফিগার করে ডেটাবেসে নিরাপদভাবে অ্যাক্সেস প্রদান করতে পারেন। এর জন্য আপনাকে derby.properties
ফাইলে ইউজারনেম এবং পাসওয়ার্ড কনফিগার করতে হবে।
derby.authentication.provider=BUILTIN
derby.user.myUser=myPassword
এখানে derby.user.myUser=myPassword
দিয়ে আপনি myUser
ইউজারের জন্য পাসওয়ার্ড নির্ধারণ করছেন।
Apache Derby ডেটাবেস ফাইল এনক্রিপশন সমর্থন করে, যার মাধ্যমে ডেটাবেস ফাইলগুলোকে নিরাপদ রাখা যায়। আপনি ডেটাবেস তৈরি করার সময় এনক্রিপশন চালু করতে পারেন:
Connection conn = DriverManager.getConnection("jdbc:derby:encryptedDB;create=true;encryptionAlgorithm=AES");
এটি encryptedDB
নামক ডেটাবেস তৈরি করবে এবং এটি AES (Advanced Encryption Standard) এলগরিদমের মাধ্যমে এনক্রিপ্ট হবে।
Apache Derby-এ Database Security আরও শক্তিশালী করতে, আপনি টেবিল, কলাম বা রো লেভেল অ্যাক্সেস কন্ট্রোল নির্ধারণ করতে পারেন। উদাহরণস্বরূপ, আপনি একটি টেবিল তৈরি করার সময় নির্দিষ্ট ব্যবহারকারীর জন্য অ্যাক্সেস সীমিত করতে পারেন:
CREATE TABLE employee (
id INT PRIMARY KEY,
name VARCHAR(100),
salary DECIMAL
) AUTHORIZATION 'myUser';
এটি টেবিলটি শুধুমাত্র myUser
ইউজার দ্বারা অ্যাক্সেসযোগ্য করে তুলবে।
Apache Derby সার্ভারটি একাধিক ক্লায়েন্টের জন্য অ্যাক্সেসযোগ্য করতে, আপনাকে সঠিকভাবে পোর্ট ফরওয়ার্ডিং কনফিগার করতে হবে এবং আপনার সার্ভারের ফায়ারওয়াল সঠিকভাবে কনফিগার করতে হবে যাতে 1527 পোর্টে সংযোগ স্থাপন করা যায়।
যদি আপনি আপনার সার্ভারটি ক্লাউড বা অন্য কোন রিমোট সার্ভারে হোস্ট করেন, তবে আপনাকে 1527 পোর্টটি ফরওয়ার্ড করতে হবে যাতে দূরবর্তী ক্লায়েন্টগুলি এই পোর্টের মাধ্যমে সার্ভারে সংযোগ স্থাপন করতে পারে।
ফায়ারওয়াল সেটিংস নিশ্চিত করুন যে, 1527 পোর্টটি খোলা রয়েছে এবং শুধুমাত্র অনুমোদিত IP অ্যাড্রেস থেকে অ্যাক্সেস করা যাবে।
Apache Derby-এর পারফরম্যান্স অপটিমাইজ করার জন্য কিছু কার্যকরী কনফিগারেশন রয়েছে:
derby.system.home
প্রোপার্টি ব্যবহার করুন, যা ডেটাবেস ফাইল সংরক্ষণে সাহায্য করবে।Apache Derby নেটওয়ার্ক সার্ভার ব্যবস্থাপনা এবং নিরাপত্তা একটি গুরুত্বপূর্ণ বিষয়, বিশেষ করে যখন এটি একটি প্রোডাকশন পরিবেশে ব্যবহৃত হয়। ডেটাবেস অ্যাক্সেস কন্ট্রোল, ইউজার অথেনটিকেশন, এনক্রিপশন এবং ফায়ারওয়াল কনফিগারেশন দ্বারা আপনি Apache Derby ডেটাবেসের নিরাপত্তা নিশ্চিত করতে পারেন। এছাড়া, নেটওয়ার্ক সার্ভার পরিচালনার মাধ্যমে একাধিক ক্লায়েন্ট অ্যাপ্লিকেশন একই সার্ভারে সংযোগ স্থাপন করতে সক্ষম হয়।